(function() {
	/*$('#add_userGroup').linkbutton({    
	    onClick: addRole
	});
	$('#edit_userGroup').linkbutton({    
	    onClick: editRole
	});
	$('#remove_userGroup').linkbutton({    
	    onClick: removeRole
	});
	
	$('#expand_userGroup').linkbutton({    
	    onClick: function () {
	    	$('#tree_userGroup').tree("expandAll");
	    }
	});
	$('#collapse_userGroup').linkbutton({    
	    onClick: function () {
	    	$('#tree_userGroup').tree("collapseAll");
	    }
	});
	$('#save_userGroup').linkbutton({    
	    onClick: saveModuleMenu
	});*/
	
	 
	$('#dataGrid_userGroup').datagrid({
		url:"systemMaintenance/findRoleList",
		toolbar:"#toolbar_userGroup",
		rownumbers : true,
		singleSelect : true,
		fit : true,
		fitColumns : true,
		border : false,
		pageSize: 20,
		pagination: true,
		pageList:[20,30,50],
		onClickRow : showMenu,
	    columns:[[
	        {field:'fname',title:'用户组名',width:160,align:'center'},
	        {field:'fsystemname',title:'已选系统权限名',width:480,align:'center',
	        	formatter: function(value,row,index){
	        		var name = row.fsystemname;
	        		if (null != name && "" != name) {
	        			
	        			var nameArr = name.split(",");
	        			if (nameArr.length > 3){
	        				var nameStr = nameArr[0] + "," + nameArr[1] + "," + nameArr[2] + "...";
	        				return nameStr;
	        			} else {
	        				return name;
	        			}
	        		}
				}
	        }
	    ]]
	});
	
})();


//添加用户组信息
function addRole() {
	// 清除表单中的原有数据
	$("#roleForm_role").form("clear");
	
	$('#dialog_role').dialog({
		title: '添加用户组',
		closed: false,
		cache: false,
		buttons:[{
			text:'确定',
			handler:confirmAdd
		},{
			text:'取消',
			handler: function() {
				$("#dialog_role").dialog("close");
			}
		}]
	});
}


function confirmAdd() {
	var roleNum = $("#number_role").textbox("getValue");
	var roleName = $("#name_role").textbox("getValue");
	
	if (null == roleNum || "" == roleNum) {
		$.messager.alert("警告", "用户组编号不能为空！", "info");
		return;
	}
	if (null == roleName || "" == roleName) {
		$.messager.alert("警告", "用户组名不能为空！", "info");
		return;
	}
	
	var mark = checkRole(roleNum);   // return标记，用来判断函数是否要中止
	// 当mark为true时，中止函数执行
	if (mark) {
		return;
	}
	
	$.ajax({
		url : "systemMaintenance/addRole",
		dataType:'json',
		type:'post',
		data:{
			roleNum : roleNum,
			roleName : roleName
		},
		success : function(data) {
			if (data.success == true) {
				$.messager.alert('信息', "添加成功！", 'info');
				$("#dialog_role").dialog("close");
				$("#dataGrid_userGroup").datagrid("reload");
			} 
		},error : errorPromt
	});
}


// 修改用户组信息
function editRole() {
	var row = $("#dataGrid_userGroup").datagrid("getSelected");
	if (row == "" || row == null) {
		$.messager.alert("信息","请选中用户组信息！","info");
		return;
	}
	// 清除表单中的原有数据
	$("#roleForm_role").form("clear");
	$("#roleForm_role").form("load", row);  // 加载表单数据
	
	// 当用户名为sa时，设置用户名文本框为只读状态
	if (row.fcode == "baszmanager") {
		$('#number_role').textbox('readonly',true);
		$('#name_role').textbox('readonly',true);
	} else {
		$('#number_role').textbox('readonly',false);
		$('#name_role').textbox('readonly',false);
	}
	
	$('#dialog_role').dialog({
		title: '修改用户组信息',
		closed: false,
		cache: false,
		buttons:[{
			text:'确定',
			handler: confirmEdit
		},{
			text:'取消',
			handler:function(){
				$("#dialog_role").dialog("close");
			}
		}]
	});
}


function confirmEdit() {
	var row = $("#dataGrid_userGroup").datagrid("getSelected");
	var id = row.fid;
	
	var roleNum = $("#number_role").val();
	var roleName = $("#name_role").val();

	// 获得选中的权限菜单
	var checkNodes = $("#tree_userGroup").tree("getChecked");
    var childNodes = "";
    for (var i = 0; i < checkNodes.length; i++) {
    	childNodes += checkNodes[i].fcode + ",";
    }
	
	if (null == roleNum || "" == roleNum) {
		$.messager.alert("警告", "用户组编号不能为空！", "info");
		return;
	}
	if (null == roleName || "" == roleName) {
		$.messager.alert("警告", "用户组名不能为空！", "info");
		return;
	}
	
	var mark = checkRole(roleNum, id);   // return标记，用来判断函数是否要中止
	// 当mark为true时，中止函数执行
	if (mark) {
		return;
	}
	
	$.ajax({
		url : "systemMaintenance/updateRole",
		dataType:'json',
		type:'post',
		data:{
			id : id,
			roleNum : roleNum,
			roleName : roleName,
			childNodes : childNodes
		},
		success : function(data) {
			if (data.success == true) {
				$.messager.alert('信息', "修改成功！", 'info');
				$("#dialog_role").dialog("close");
				$("#dataGrid_userGroup").datagrid("reload");
			} 
		},error : errorPromt
	});
}


function removeRole() {
	var rows = $("#dataGrid_userGroup").datagrid("getSelections");
	if (rows == null || "" == rows) {
		$.messager.alert("信息","请选中用户组信息！","info");
		return;
	}
	
	/*for (var i = 0; i < rows.length; i++) {
		// 当用户组编号为baszmanager(即默认的系统管理员用户组)时，提示不可删除
		if (rows[i].fcode == "baszmanager") {
			$.messager.alert("信息","不能删除示踪系统管理员用户组！","info");
			return;
		} 
	}*/
	
	$.messager.confirm('信息', '是否要删除用户组信息?', function(r){
		if (r){
			var idStr = "";
			for (var i = 0; i < rows.length; i++) {
				idStr += rows[i].fid + ",";
			}
			
			$.ajax({
				url : "systemMaintenance/deleteRole",
				dataType:'json',
				type:'post',
				data:{
					idStr : idStr
				},
				success : function(data) {
					if (data.success == true) {
						$.messager.alert('信息', "删除成功！", 'info');
						$("#dataGrid_userGroup").datagrid("reload");
						$("#tree_userGroup").tree("reload");  // 重新加载权限菜单
					} 
				},error : errorPromt
			});
		} 
	});
}


function showMenu(index, row) {
	$('#tree_userGroup').tree({
		url : 'systemMaintenance/findModuleList',
		checkbox : true,
		async : false,
		queryParams : {
		    name : row.fcode
		},
		onClick : function(node) {
			// 点击节点文本名时，若checkbox选中则
			if (node.checkState == "checked") {
				$('#tree_userGroup').tree('uncheck', node.target);
			} else {
				$('#tree_userGroup').tree('check', node.target);
			}
		},
		onLoadError : errorPromt
	});
}

function saveModuleMenu() {
	var row = $("#dataGrid_userGroup").datagrid("getSelected");  // 获得选中的表格行
	var index = $('#dataGrid_userGroup').datagrid("getRowIndex", row);  // 获得选中行的索引号，用于在reload表格重新选中当前行
    var checkNodes = $("#tree_userGroup").tree("getChecked");  // 获得所有选中的权限菜单项
    var role = row.fcode;  // 获得选中行的用户组编号
    
    var childNodes = "";
    for (var i = 0; i < checkNodes.length; i++) {
    	var code = checkNodes[i].fcode; // 被选中权限的编号
    	if (null != code && "" != code) {
    		childNodes += checkNodes[i].fcode + ",";
    	}
    }
    
    $.ajax({
		url : "systemMaintenance/saveRoleModule",
		dataType:'json',
		cache : false,
		type:'post',
		data:{
			role : role,
			childNodes : childNodes
		},
		success : function(data) {
			if (data.success == true) {
				$('#dataGrid_userGroup').datagrid("reload");
				$.messager.alert('信息', "保存成功！", 'info', function () {  // callback function
					$('#dataGrid_userGroup').datagrid("selectRow", index);  // 按索引号重新选中当前行
				});
			} 
		},error : errorPromt
	});
}

//校验用户组信息
function checkRole(roleNum, id) {
    var mark = false;  // return标记，用来判断调用该函数的函数是否要中止
	
	// 校验要新增用户组的用户组编号是否已存在
	$.ajax({
		url : "systemMaintenance/getRoles",
		async : false,
		dataType: 'json',
		type: 'get',
		data: {id : id},
		success : function(data) {
            for (var i = 0; i < data.length; i++) {
            	// 判断用户组编号是否已存在
				if (data[i].fcode == roleNum) {
					$.messager.alert("警告", "该用户组编号已存在！", "info");
					mark = true;  // 用户组编号冲突时，将mark置为true，以使函数正确中止
					return;
				}
			}
		},
		error : errorPromt
	});
	return mark;
}
 

//展开全部
function expandModule(){
	$('#tree_userGroup').tree("expandAll");
}
//收起全部
function collapseModule(){
	$('#tree_userGroup').tree("collapseAll");
}
 